// src/dog.cpp
#include "animal_factory.hpp"
#include "iostream"

class Dog : public Animal {
public:
  void sound() override { std::cout << "wow" << std::endl; }
};

class DogFactory : public AnimalFactory {
public:
  std::unique_ptr<Animal> create() override { return std::make_unique<Dog>(); }

  const char *type_name() const override { return "dog"; }
};

extern "C" {
AnimalFactory *create_factory() { return new DogFactory(); }
}